"""
接下来是一个完整的图形界面的项目（图书管理系统）

那么我们需要确定的是：（需要实现的）功能、开发工具、以及开发流程
需要实现的功能：图书管理、类别管理、用户管理、日常操作处理、主题设置。
需要使用的开发工具：Pycharm、MySQL、PyQt5
开发流程：界面设计、数据库设计、编程实现

之后的话，我们首先可以设计一下界面，就是在pycharm当中使用QT Designer。

首先创建一个主界面（main window）
之后想要实现图书管理、类别管理、用户管理、日常操作处理、主题设置五个功能，
那么我们可以设置五个按钮来对应这五个功能。

在生成五个按钮之后，一定要设置各自的对象名称（Object name），更改理由：图形转化成代码时方便查找对应的对象

这里穿插讲一下资源文件，也就是例如图片之类的资源我们可以放在一起，
就相当于将所有的资源都整合到一起，方便查找和使用

而在qt当中如何利用资源文件（resource文件）
在qt5当中需要编写一个qt resource的说明文件。
也就是先创建一个文件夹，同时将创建一个相同名字但是尾缀为qrc的资源文件
资源文件的设置文件包含三部分内容：1.文件约束<!DOCTYPE RCC><RCC version="1.0"></RCC>
                            2.资源文件说明 <qresource> </qresource>
                            3.资源文件路径 <file>icons/books.png</file>
    注意点：资源文件的配置时，资源文件所在的文件夹，必须和资源配置文件在同一级的路径

    另外需要添加一个额外工具：Pyrcc（这是将含有resource的配置文件转换成py文件的一个工具）
            注意点：这里的pyrcc是将配置文件（qrc文件）转换成py文件


下来制作第一个按钮（书籍管理的相关操作）：
        首先我们利用一下按钮右侧的空间插入一个容器组件（tab widget）（补充：我们在制作的时候，可以通过“窗体”-->"预览（ctrl+R）"）
        而在tab widget的第一个tab中我们制作数据管理的相关信息，那么我们就需要在其中再添加一个tab widget
        也就是需要容器嵌套容器（tab widget嵌套tab widget） ，同时在后面我们需要将这些嵌套的容器相互关联起来
        后面的tab widget的第一个tab和第二个tab需要在currentTabText中重新编辑显示内容（添加书籍、编辑书籍）
            添加书籍的tab中我们需要设计的是：
                ‘添加书籍’的标签（label），书籍名称的输入框lineEdit（单行文本框）
                ‘简介’的标签（label），以及简介需要的多行文本Text Edit（多行文本）
                ‘作者’的标签（label），这里作者整合起来可以使用一个combo Box
                ‘类别’的标签（label），也可以使用一个combo Box
                '出版社'的标签（label），也可以使用一个combo Box
                ‘价格’的标签（label），使用单行文本输入框（lineEdit）
                ‘搜索’的按钮（pushbutton），使用按钮组件来完成书籍的搜索功能
                ‘添加’的按钮（pushbutton），使用添加按钮来完成数据的添加确认
                    注意：由于我们还还需要将ui文件转换成py文件，所以需要更改对应组件的对象名称（object name）
            编辑书籍的tab中我们可以直接复制添加书籍的tab内的内容
                    注意：复制过来的所有需要我们编辑的对象，都需要重新编辑对象名称（以方便后期对其进行修改）

        接着我们需要设置一些原始数据，比如作者、类别、出版社等信息。
        我们想要实现的效果是：当我们点击“基础信息”的时候，右侧的tab会自动切换到相应的基础信息（作者、出版社等）
        那么我们就可以在总的tab widget的第二个标签中在嵌套一个tab widget来展示相关的基础信息
            基础信息的tab中我们需要设计的是：类别、作者、出版社（相当于是二级tab）
                而在类别的标签中，我们进行如下设计：
                    ‘类别’提示标签（label）
                    ‘类别输入框’使用单行文本框（lineEdit）
                    ‘添加按钮’使用按钮组件（pushbutton）
                    ‘类别展示表格’使用item widgets中的table widget （这里不使用item view当中的table view）

        下面我们可以做一下主题设置
        也就是点击‘主题设置’按钮时，然后在界面的右侧会出现一个浮动的弹窗，其中就可以选择界面主题
        然后再groupbox中添加不同主题的按钮，并且再添加一个将浮窗收回的一个收回按钮。

        这样我们界面的‘书籍管理’、‘基础信息’、‘主题设置’基本设定完毕




"""